코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 스쿨
[ 템플릿 코드 ]
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
return answer;
}[ 풀이 ]
#include <string>
using namespace std;
string solution(string s)
{
for (int i = 0; i < s.length(); i++)
{
for (int j = i + 1; j < s.length(); j++)
{
if (s[i] < s[j])
{
char temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
return s;
}[ 해설 ]
#include <string> // string 자료형을 사용하기 위한 헤더
using namespace std; // std::string 대신 string을 쓰기 위해 사용
// 문자열을 받아 내림차순으로 정렬한 문자열을 반환하는 함수
string solution(string s)
{
// i는 현재 기준이 되는 문자 위치
// 문자열 처음부터 끝까지 하나씩 확인
for (int i = 0; i < s.length(); i++)
{
// i 뒤에 있는 문자들과 비교하기 위한 반복문
// i+1부터 시작하는 이유는 이미 앞쪽은 비교했기 때문
for (int j = i + 1; j < s.length(); j++)
{
// 현재 문자(s[i])가 뒤의 문자(s[j])보다 작다면
// 큰 문자가 앞으로 와야 하므로 위치를 교환
if (s[i] < s[j])
{
// 교환을 위해 현재 문자를 임시 저장
char temp = s[i];
// 뒤에 있던 더 큰 문자를 앞으로 이동
s[i] = s[j];
// 임시 저장해둔 문자를 뒤로 이동
s[j] = temp;
}
}
}
// 모든 비교가 끝나면 내림차순 정렬된 문자열 반환
return s;
}[ 타 답안 ]